package practice.server;

/**
 * 
 * 
 * @author insight 
 * @since 2021/9/9
 */
public interface ThreadPool<Job extends Runnable> {
    /**
     * 提交一个任务等待执行
     *
     * @param job 工作
     */
    void execute(Job job);

    /**
     * 关闭线程池
     */
    void shutDown();

    /**
     * 增加工作线程
     *
     * @param num 全国矿工工会
     */
    void addWorker(int num);

    /**
     * 减少工作线程
     *
     * @param num 全国矿工工会
     */
    void removeWorker(int num);

    /**
     * 获取任务数量
     *
     * @return int
     */
    int getJobCnt();

    /**
     * 获取工作线程数量
     *
     * @return int
     */
    int getWorkerCnt();
}